home *** CD-ROM | disk | FTP | other *** search
/ Apple II Magazines (DO) / Softdisk Magazette Volume 1, No. 06 (1982-02)(Softdisk)(Side B).zip / Softdisk Magazette Volume 1, No. 06 (1982-02)(Softdisk)(Side B).do / BIORHYTHM.bas < prev    next >
BASIC Source File  |  1996-12-24  |  4KB  |  93 lines

  1. 20  DIM D(12),B$(3),P(31),I(31),E(31),TC(31),M$(12)
  2. 30 B$(1) = " ":B$(2) = " DOUBLE ":B$(3) = " TRIPLE "
  3. 50  FOR I = 1 TO 12: READ D(I): NEXT I
  4. 60  DATA  31,28,31,30,31,30,31,31,30,31,30,31
  5. 70  FOR I = 1 TO 12: READ M$(I): NEXT I
  6. 80  DATA  JANUARY,FEBRUARY,MARCH,APRIL,MAY,JUNE,JULY,AUGUST,SEPTEMBER,OCTOBER,NOVEMBER,DECEMBER
  7. 90  TEXT : HOME 
  8. 100  DEF  FN B(X) =  SIN(6.283185307 * FN C(X))
  9. 110  DEF  FN C(X) = BN/X - INT(BN/X)
  10. 115  DEF  FN D(X) = 79 - INT( FN B(X) *80)
  11. 120  DEF  FN A(X) =  INT(X *1000 +.5)/100
  12. 130  PRINT "**** BIORHYTHM CURVES ****": PRINT : PRINT : PRINT 
  13. 140  GOSUB 2000
  14. 150  VTAB 10: HTAB 1
  15. 200  PRINT "BIRTHDAY :": PRINT "  MONTH (MM): ";: INPUT M: PRINT "  DAY   (DD): ";: INPUT D: PRINT "  YEAR  (YY): ";: INPUT Y
  16. 205 Y = Y +1900 *(Y <100)
  17. 206  VTAB 10: CALL  -958
  18. 207  PRINT "BIRTHDATE IS:": PRINT : PRINT "        ";M$(M);" ";D;", ";Y
  19. 210  GOSUB 1000
  20. 215 BN = BD
  21. 216  VTAB 15: HTAB 1
  22. 220  PRINT : PRINT "FORECAST DATE": IF SET  THEN  PRINT " (<RETURN> IF CURRENT MONTH AND YEAR)"
  23. 221  INPUT "  MONTH (MM) : ";M$:M =  VAL(M$): IF M = 0  THEN D = 1:M = MM:Y = YY: GOTO 223
  24. 222  INPUT "  YEAR  (YY) : ";Y$:Y =  VAL(Y$):D = 1
  25. 223 Y = Y +1900 *(Y <100)
  26. 224  VTAB 15: HTAB 1: CALL  -958: PRINT "FORECAST DATE:": PRINT : PRINT "       ";M$(M);" 1, ";Y: PRINT 
  27. 225  GOSUB 1000
  28. 230 BN = BD -BN
  29. 235  PRINT "THIS WILL TAKE A WHILE..."
  30. 240  GOSUB 1200
  31. 250  GOSUB 600
  32. 260  GOSUB 400
  33. 300  TEXT : HOME : PRINT "GOOD-BYE!!!"
  34. 310  END 
  35. 400 BN = BN +D(M):M = M +1: IF M <13  THEN 420
  36. 410 M = 1:Y = Y +1: GOSUB 500
  37. 420 D = 1: POP : GOTO 240
  38. 500  IF  INT(Y/4) = Y/4  THEN 520
  39. 510  GOTO 530
  40. 520  IF  INT(Y/400) = Y/400  THEN 540
  41. 530  RETURN 
  42. 540 D(2) = 29
  43. 550  RETURN 
  44. 600  PRINT "DO YOU WANT ANOTHER MONTH ";: GET R$
  45. 605  HOME : VTAB (21)
  46. 607  PRINT "WAIT JUST A MINUTE..."
  47. 610  IF R$ = "Y"  THEN  RETURN 
  48. 620  GOTO 300
  49. 1000  REM  CALCULATE NUMBER OF DAYS UNTIL M/D/Y
  50. 1010  IF M <3  THEN 1050
  51. 1020 M1 = M -3:Y1 = Y
  52. 1040  GOTO 1070
  53. 1050 M1 = M +9:Y1 = Y -1
  54. 1070 C =  INT(Y1/100):D1 = Y1 -(C *100)
  55. 1080 BD =  INT((146097 *C)/4) +D + INT((1461 *D1)/4) +1721119 + INT((153 *M1 +2)/5)
  56. 1090  RETURN 
  57. 1200  REM  DRAW A GRAPH
  58. 1239 BQ = BN:BN = BN -1
  59. 1240  FOR DAY = 1 TO 31
  60. 1245 BN = BN +1:P(DAY) =  FN D(23):I(DAY) =  FN D(28):E(DAY) =  FN D(33):TC(DAY) = (P(DAY) +I(DAY) +E(DAY))/3
  61. 1250  NEXT DAY
  62. 1251 BN = BQ
  63. 1252  HGR : HCOLOR= 3: HPLOT 0,80 TO 279,80
  64. 1253  HPLOT 0,0 TO 0,160
  65. 1255 BN = BQ
  66. 1260  GOSUB 1300
  67. 1264  VTAB 21
  68. 1265  PRINT "1   4    7   11   15   19   23   27  31"
  69. 1270  PRINT "RED=PHYS, BLUE=EMOT, GREEN=MENTAL"
  70. 1280  PRINT "VIOLET=TOTAL, MONTH= ";M$(M);" ";Y
  71. 1295  RETURN 
  72. 1300  HCOLOR= 5: HPLOT 0,P(1): FOR K = 2 TO 31: HPLOT  TO 9 *(K -1),P(K): NEXT K
  73. 1310  HCOLOR= 6: HPLOT 0,I(1): FOR K = 2 TO 31: HPLOT  TO 9 *(K -1),I(K): NEXT K
  74. 1320  HCOLOR= 1: HPLOT 0,E(1): FOR K = 2 TO 31: HPLOT  TO 9 *(K -1),E(K): NEXT K
  75. 1330  HCOLOR= 2: HPLOT 0,TC(1): FOR K = 2 TO 31: HPLOT  TO 9 *(K -1),TC(K): NEXT K
  76. 1340  RETURN 
  77. 1400  PRINT "DO YOU WANT ANOTHER MONTH";: INPUT R$
  78. 1410  IF  LEFT$(R$,1) = "Y" GOTO 1430
  79. 1420  RETURN 
  80. 1430  TEXT : HOME : GOTO 200
  81. 2000  REM  DETERMINE CURRENT
  82. 2001  REM  DATE IF DATE -
  83. 2002  REM  KEEPER HELLO IS
  84. 2003  REM  HELLO PROGRAM.
  85. 2010  IF  PEEK(1017) <1  OR  PEEK(1017) >12  OR  PEEK(1018) <0  OR  PEEK(1018) >31  THEN SET = 0: RETURN 
  86. 2015 MM =  PEEK(1017):DD =  PEEK(1018):YY =  PEEK(1016)
  87. 2016  VTAB 5: HTAB 1
  88. 2017 YY = YY +1900
  89. 2020  PRINT "CURRENT DATE IS:"
  90. 2025  PRINT 
  91. 2030  PRINT "        ";M$(MM);" ";DD;", ";YY
  92. 2035  PRINT : PRINT 
  93. 2040 SET = 1: RETURN